home *** CD-ROM | disk | FTP | other *** search
- /*
- listing 4 - lookup.c
-
- */
-
- #include <stdio.h>
- #include "common.h" /* define structures */
-
- FUNC lookup (int type, struct record *position_ptr,
- struct record *tran_start,
- int transaction_size, void *user_value)
- {
-
- int i; /* loop control */
- BOOL found=OFF; /* bool value for search lookup */
-
- int integer; /* hold integer value */
- float floater; /* hold float value */
-
-
-
- switch (type) {
-
- case INT:
-
- for (i=0, integer = *((int *) position_ptr);
- i < transaction_size; i++,
- position_ptr++, integer = *((int *) position_ptr) ) {
-
- if (integer == *( (int *) user_value) ) {
- found = ON;
- lookup_print(&tran_start[i]);
- }
-
- }
-
- break;
-
- case FLOAT:
-
- for (i=0, floater = *((float *) position_ptr);
- i < transaction_size; i++, position_ptr++,
- floater = *((float *) position_ptr) ) {
-
- if (floater == *( (float *) user_value) ) {
- found = ON;
- lookup_print(&tran_start[i]);
- }
-
- }
-
- break;
-
- case STRING:
-
- for (i=0; i < transaction_size; i++, position_ptr++) {
-
- if ( !strcmp( position_ptr, (char *) user_value) ) {
- found = ON;
- lookup_print(&tran_start[i]);
- }
- }
-
- break;
-
-
- };
-
- /*
- If a comparison was successful, then return SUCCEED, otherwise
- return FAIL.
- */
-
- if (!found) {
- return FAIL;
- } else {
- return SUCCEED;
- }
-
- }
-